<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>010_事件的冒泡</title>
    <style type="text/css">
        #box1 {
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
        }
        #s1 {
            background-color: red;
        }
    </style>
</head>
<body>
    <div id="box1">
        我是box1
        <span id="s1">我是span</span>
    </div>

<script type="text/javascript">

    /**
     * 事件的冒泡（Bubble）：
     *      所谓的冒泡指的就是事件的向上传导，当后代元素的事件被触发时，其祖先元素的相同事件也会被触发
     *      在开发中冒泡是非常有用的，如果不希望发生冒泡事件可以通过事件来取消冒泡
     *
     */
    var s1 = document.getElementById("s1");
    s1.onclick = function (event) {
        // 取消事件的冒泡
        if(!event) {
            event = window.event;
        }
        event.cancelBubble = true; // 可以将事件对象的cancelBubble设置为true，即可取消冒泡
        alert("我是s1的单击响应函数");
    };

    var box1 = document.getElementById("box1");
    box1.onclick = function () {
        alert("我是box1的单机响应函数");
    };

    // 给body绑定单机响应函数
    document.body.onclick = function () {
        alert("我是body的单击响应函数")
    };
</script>
</body>
</html>